# coding : UTF-8
"""
author：BingBO   time：2023.05.05
Theme：
notes：
"""

import os
import cv2 as cv
import glob


# 递归遍历目录，输出所有文件
def recursive_listdir(path):
    # 返回列表，存储path下面的子目录\文件的名称（不递归子文件夹）
    dir_list = os.listdir(path)
    for dir_name in dir_list:
        dir_path = os.path.join(path, dir_name)
        # 判断dir_path是目录or文件
        # 如果是文件，则打印
        if os.path.isfile(dir_path):
            print(dir_name)
        # 如果是目录，则递归此目录
        elif os.path.isdir(dir_path):
            recursive_listdir(dir_path)


#
def walk_dir(path):
    paths = os.walk(path)
    files = []
    #   文件夹路径、文件夹名称和文件名
    for path, dir_lst, file_lst in paths:
        # 显示所有子目录
        # for dir_name in dir_lst:
        #     print(os.path.join(path, dir_name))
        # 显示目录下所有文件
        for file_name in file_lst:
            print(os.path.join(path, file_name))
            files.append(os.path.join(path, file_name))
    return files


def traversal_files(path):
    dirs = []
    files = []
    # 返回path目录树中对应的os.DirEntry对象的迭代器（文件夹或文件），不包含子文件夹里的文件夹和文件，但运行效率比os.walk高
    for item in os.scandir(path):
        if item.is_dir():
            dirs.append(item.path)
        elif item.is_file():
            files.append(item.path)

    print('dirs:')
    print('\n'.join(dirs))

    print('files:')
    print('\n'.join(files))


if __name__ == "__main__":
    image_path = r"E:\SHU\Research Group\LaserVisionSensor\MVS_Data\V"
    # recursive_listdir(image_path)
    walk_dir(image_path)
    # traversal_files(image_path)
